package ioDemo;

import java.io.*;
import java.nio.charset.StandardCharsets;

/**
 * 读取文本数据
 */
public class ReadStringDemo {
    public static void main(String[] args) throws IOException {
        //1.创建一个文件输入流对象fis，并连接数据源"p.txt"。
        // 然后将它转化为字符输入流对象isr(因为fis每次读取文字信息时有可能只读取了一半儿的文字<比如汉字>。 isr一次可以读取一个完整的文字)。
        // 然后再转化为缓冲字符输入流对象br(因为isr字符输入流每次只读取了一个文字， 用BufferedReader的readLine()方法一次可以读取一行文字)。
        FileInputStream fis = new FileInputStream("p.txt");
        InputStreamReader isr = new InputStreamReader(fis, StandardCharsets.UTF_8);
        BufferedReader br = new BufferedReader(isr);




        //2.用缓冲字符输入流对象br的readLine()方法一次从"p.txt"文件中读取一行文字存入到lineWords变量中。
        //用缓冲字符输入流对象br的readLine()方法每次读取的数据都会存入到lineWords变量中。(如果没读到文件末尾就继续循环读取<br.readLine()方法读到文件末尾就会读到null>)
        String lineWords="";//lineWords变量表示本次readLine()方法读取的数据
        while(  ( lineWords=br.readLine() )   !=   null  ){
            System.out.println(lineWords);//将br的readLine()方法，读取的一行文字打印出来
        }


        //3.关闭输入流
        br.close();
        isr.close();
        fis.close();

    }
}
